package io.renren.modules.app.dao.index;

import io.renren.modules.app.entity.company.CompanyEntity;
import io.renren.modules.app.entity.company.YcCollectCompany;
import io.renren.modules.app.entity.company.YcCompanyEntity;
import io.renren.modules.app.entity.company.YcRecordRecruitEntity;
import io.renren.modules.app.entity.index.IndexRecruitEntity;
import io.renren.modules.app.entity.index.YcRecruitEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import io.renren.modules.app.entity.index.YcSpreadRecord;
import io.renren.modules.app.entity.info.CollectData;
import io.renren.modules.app.entity.info.CompanyRecuit;
import io.renren.modules.app.entity.info.YcUserInterview;
import io.renren.modules.app.entity.info.YcUserPost;
import io.swagger.models.auth.In;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * 
 * 
 * @author lym
 * @email 928185446qq.com
 * @date 2023-12-26 14:56:30
 */
@Mapper
public interface YcRecruitDao extends BaseMapper<YcRecruitEntity> {

    /**
     * 查询竞价职位列表数据，根据竞价积分倒序
     * @return
     */
    //List<YcRecruitEntity> getbiddingList();

    /**
     * 查询竞价前三数据
     * @return List<IndexRecruitEntity>
     */
    List<IndexRecruitEntity> getIndexDataList(@Param("param") Map<String, Object> params);

    /**
     * 查询非竞价数据（排除前三条）
     * @return List<IndexRecruitEntity>
     */
    List<IndexRecruitEntity> getIndexDataList2(@Param("param") Map<String, Object> params);


    /**
     * 通过招聘编号查询企业编号获取企业详情
     * @return CompanyEntity
     */
    YcCompanyEntity selectCompanyDetailById(@Param("id") String id);

    /**
     * 通过公司编号查询招聘人信息
     * @param companyId
     * @return CompanyEntity
     */
    CompanyEntity selectCompanyUserByCompanyId(@Param("companyId") Integer companyId);

    /**
     * 查询招聘福利待遇
     */
    List<String> selectRecruitWelfare(@Param("recruitId") String recruitId);

    /**
     * 获取竞价展示条数
     * @return
     */
    Integer getBidCount();

    /**
     * 查询点击职位时间差值
     */
    int selectUpdateBidRecordAddTime(@Param("recruitId") String recruitId, @Param("ip") String ip);

    /**
     * 更新竞价数据
     */
    int updateRecruitBid(@Param("id") String id, @Param("points") Integer points);

    int insertRecruitRecord(YcRecordRecruitEntity recruitEntity);

    int selectExitsBidData(@Param("recruitId") String recruitId, @Param("ip") String ip);

    /**
     * 查询公司职位竞价数据
     */
    List<IndexRecruitEntity> selectRecruitCompanyBidData();

    /**
     * 查询收藏数据
     */
    List<CollectData> selectCollectData(@Param("userId") String userId);

    /**
     * 查询用户投递信息
     */
    List<YcUserPost> selectUserPostData(@Param("userId") Integer userId);

    /**
     * 查询公司投递信息
     */
    List<YcUserPost> selectCompanyPostData(@Param("companyId") Integer companyId);

    /**
     * 查询企业收藏数据
     */
    List<YcCollectCompany> selectCompanyCollectList(@Param("companyId") Integer companyId);

    /**
     * 查询企业招聘岗位信息
     */
    List<CompanyRecuit> selectCompanyRecuitList(@Param("companyId") Integer companyId);

    /**
     * 查询公司约邀数据
     */
    List<YcUserInterview> selectCompanyInterList(@Param("companyId") Integer companyId,
             @Param("resumeId") Integer resumeId, @Param("recrutId") Integer recrutId);

    /**
     * 查询公司约邀数据
     */
    List<YcUserInterview> selectInterByCompanyList(@Param("companyId") Integer companyId, @Param("status") String status);

    List<YcUserInterview> selectInterByUserList(@Param("userId") Integer userId, @Param("status") String status);

    List<YcSpreadRecord> selectSpreadRecordListByCompanyId(@Param("companyId") Integer companyId);

    List<YcSpreadRecord> selectSpreadRecordAllByCompanyId(@Param("companyId") Integer companyId);

    int updateCompanySpreadFen(@Param("companyId") Integer companyId, @Param("points") Integer points);
}
